package com.qiangesoft.sms.aliyun.handler;

import org.apache.commons.lang3.StringUtils;

import java.util.Collection;
import java.util.Collections;
import java.util.Map;

/**
 * 短信处理器
 *
 * @author qiangesoft
 * @date 2024-04-30
 */
public interface SendHandler {

    /**
     * 发送短信
     *
     * @param phones
     * @param param
     * @return
     */
    boolean send(Collection<String> phones, Map<String, Object> param);

    /**
     * 发送短信
     *
     * @param phone
     * @param param
     * @return
     */
    default boolean send(String phone, Map<String, Object> param) {
        if (StringUtils.isBlank(phone)) {
            return false;
        }

        return send(Collections.singletonList(phone), param);
    }

    /**
     * 发送短信
     *
     * @param phones
     * @param templateCode
     * @param param
     * @return
     */
    boolean send(Collection<String> phones, String templateCode, Map<String, Object> param);

    /**
     * 发送短信
     *
     * @param phone
     * @param templateCode
     * @param param
     * @return
     */
    default boolean send(String phone, String templateCode, Map<String, Object> param) {
        if (StringUtils.isBlank(phone)) {
            return false;
        }

        return send(Collections.singletonList(phone), param);
    }
}
